package com.yxinsur.imc.business.form;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.common.annotation.Excel;
import com.yxinsur.imc.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 保单对象 imc_order
 *
 * @author imc
 * @date 2021-03-18
 */
@Data
@ToString
public class OrderForm
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("ID,新增为空，编辑有值")
    private Long id;

    /** 保单号，合同号 */
    @NotBlank(message="保单号[policyCode]不能为空")
    @ApiModelProperty("保单号，合同号")
    private String policyCode;

    /** 投保单号 */
    @NotBlank(message="投保单号[proposalCode]不能为空")
    @ApiModelProperty("投保单号")
    private String proposalCode;

    /** 当前保单服务人员 */
    @NotNull(message="当前保单代理人ID[brokerId]不能为空")
    @ApiModelProperty("当前保单代理人ID")
    private Long brokerId;

    /** 当前出单人员 */
    @NotNull(message="当前保单出单代理人ID[brokerId]不能为空")
    @ApiModelProperty("当前保单出单代理人ID")
    private Long initBrokerId;

    /** 保险公司 供应商id  */
    @NotNull(message="供应商[repoSupplierId]不能为空")
    @ApiModelProperty("保险公司 供应商ID ")
    private Long repoSupplierId;

    /** 录单机构id（并非租户机构id） */
    @NotNull(message="录单机构id[inputOrgId]不能为空")
    @ApiModelProperty("录单机构id")
    private Long inputOrgId;


    /** 结算机构id（并非租户机构id） */
    @NotNull(message="结算机构id[settleOrgId]不能为空")
    @ApiModelProperty("结算机构id")
    private Long settleOrgId;

    /** 投保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message="投保日期[applyDate]不能为空")
    @ApiModelProperty("投保日期")
    private Date applyDate;

    /** 承保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("承保日期")
    private Date insureDate;

    /** 保单生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("保单生效日期")
    private Date effectiveDate;

    /** 保单失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("保单失效日期")
    private Date expiredDate;

    /** 客户回执签收时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("客户回执签收时间")
    private Date custAckDate;

    /** 回执录入时间(回执录入系统时间) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("回执录入时间(回执录入系统时间)")
    private Date ackDate;

    /** 供应商客户回访时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("供应商客户回访时间")
    private Date revisitDate;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;

}
